package com.hlkj.pay.vo.merchant.req;

import com.hlkj.framework.common.valid.EnumValid;
import com.hlkj.pay.enums.CommonEnum;
import com.hlkj.pay.enums.MerchantEnum;
import com.hlkj.pay.vo.BaseReq;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

/**
* 公告信息
* @TableName t_notice
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class NoticeReq extends BaseReq {
    /**
     * 名称
     */
    @Schema(description = "更新提交时候传")
    private Long id;
    /**
    * 名称
    */
    @Schema(description = "名称")
    @NotEmpty(message = "名称 不能为空")
    private String name;
    /**
    * 标题
    */
    @Schema(description = "标题")
    @NotEmpty(message = "标题 不能为空")
    private String title;
    /**
    * 发布人
    */
    @Schema(description = "发布人")
    @NotEmpty(message = "发布人 不能为空")
    private String publisher;
    /**
    * 发布范围 0 全平台 1 机构 2 商户
    */
    @Schema(description = "发布范围 0 全平台 1 机构 2 商户")
    @NotNull(message = "发布范围 不能为空")
    @EnumValid(value = MerchantEnum.NOTICE_PUBLISH_TYPE.class, message = "发布范围 无效")
    private Integer publishType;
    /**
    * 公告类型 0 公告 1 通知
    */
    @Schema(description = "公告类型 0 公告 1 通知")
    @NotNull(message = "公告类型 不能为空")
    @EnumValid(value = CommonEnum.YES_NO_TYPE.class, message = "公告类型 无效")
    private Integer noticeType;
    /**
    * 生效时间
    */
    @Schema(description = "生效时间")
    @NotNull(message = "生效时间 不能为空")
    private Long effectTime;
    /**
    * 0 关闭 1 启动
    */
    @Schema(description = "0 关闭 1 启动")
    private Integer status;
    /**
    * 内容
    */
    @Schema(description = "内容")
    @NotEmpty(message = "内容 不能为空")
    private String content;

}
